In a mobile telephone, data to be transmitted or received over an air interface requires complex processing according to dedicated algorithms.
In order to facilitate such complex processing, in addition to having a microcontroller for providing control of the features and functions of the mobile telephone, a mobile telephone typically has a Digital Signal Processor (DSP), dedicated to handling the transmitted and received data.
A program is written for the microcontroller, incorporating the desired features and functions. This program may be written in a virtual (intermediate) language, using a software tool. The microcontroller has a translator (on- or off-chip), which translates the virtual language into native machine language as the program is executed.
In contrast to the above, a short amount of code is written for the DSP, containing the required algorithms. This code must be written in native machine language, because software compilers cannot currently handle DSP-like code, and because the algorithms require fast processing, not compatible with a virtual language using translators.
If a new DSP is designed for use in a mobile telephone, a microcontroller is also designed or selected for the unit. Typically a number of software teams are involved in order to provide all of the above software. A team is required to write the virtual language program, another team is required to write the code for the DSP. Yet another team must write a translator for the microcontroller and the DSP.
A problem with this arrangement is that with new generations of mobile telephones being produced at a rapid rate, with new microcontrollers and DSPs, the overhead in software development time can add a significant delay to the completion of a new mobile telephone design.
This invention seeks to provide a method and system for executing instructions in a microprocessor which mitigate the above mentioned disadvantages.